package com.itzxx.huazhun.ui

import android.app.Application
import cn.com.heaton.blelibrary.ble.Ble
import cn.com.heaton.blelibrary.ble.model.BleDevice
import cn.com.heaton.blelibrary.ble.utils.UuidUtils
import com.itzxx.huazhun.utils.ble.MyBleWrapperCallback
import com.itzxx.library_base_ktx.ext.util.loge
import com.itzxx.huazhun.utils.ble.BleConstant
import java.util.UUID

/**
 * Desc:
 *
 * Author: zhangxiaoxiao
 * Date: 2024/7/24 15:20
 * Updater:
 * Update Time:
 * Update Comments:应用入口
 * 　　　　　　　　┏┓　　　┏┓
 * 　　　　　　　┏┛┻━━━┛┻┓
 * 　　　　　　　┃　　　　　　　┃
 * 　　　　　　　┃　　　━　　　┃
 * 　　　　　　　┃　＞　　　＜　┃
 * 　　　　　　　┃　　　　　　　┃
 * 　　　　　　　┃...　⌒　...　┃
 * 　　　　　　　┃　　　　　　　┃
 * 　　　　　　　┗━┓　　　┏━┛
 * 　　　　　　　　　┃　　　┃　Code is far away from bug with the animal protecting
 * 　　　　　　　　　┃　　　┃   神兽保佑,代码无bug
 * 　　　　　　　　　┃　　　┃
 * 　　　　　　　　　┃　　　┃
 * 　　　　　　　　　┃　　　┃
 * 　　　　　　　　　┃　　　┃
 * 　　　　　　　　　┃　　　┗━━━┓
 * 　　　　　　　　　┃　　　　　　　┣┓
 * 　　　　　　　　　┃　　　　　　　┏┛
 * 　　　　　　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　　　　　　┃┫┫　┃┫┫
 * 　　　　　　　　　　┗┻┛　┗┻┛
 */
class MyApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        initBle()
    }

    //初始化蓝牙
    private fun initBle() {
        Ble.options().apply{
            logBleEnable = true
            throwBleException = true
            autoConnect = false
            connectFailedRetryCount = 10
            connectTimeout = 10000L
            scanPeriod = 12000L
            uuidService = UUID.fromString(UuidUtils.uuid16To128(BleConstant.SERVICE_UUID))
            uuidWriteCha = UUID.fromString(UuidUtils.uuid16To128(BleConstant.WRITE_CHARACTERISTIC_UUID))
            uuidNotifyCha =  UUID.fromString(UuidUtils.uuid16To128(BleConstant.NOTIFY_CHARACTERISTIC_UUID))
            bleWrapperCallback = MyBleWrapperCallback()
        }.create<BleDevice>(applicationContext, object :Ble.InitCallback{
            override fun failed(failedCode: Int) {
                "init failed: $failedCode".loge()
            }

            override fun success() {
                "init success".loge()
            }
        })
    }
}
